//
//  TitleButton.swift
//  WBDemo
//
//  Created by Meng on 16/12/20.
//  Copyright © 2016年 demo. All rights reserved.
//

import UIKit

class TitleButton: UIButton {

    /*
    // Only override draw() if you perform custom drawing.
    // An empty implementation adversely affects performance during animation.
    override func draw(_ rect: CGRect) {
        // Drawing code
    }
    */
    // 通过纯代码创建时调用
    override init(frame: CGRect) {
        super.init(frame: frame)
        setImage(#imageLiteral(resourceName: "navigationbar_arrow_down"), for: .normal)
        setImage(#imageLiteral(resourceName: "navigationbar_arrow_up"), for: .selected)
        setTitleColor(UIColor.black, for: .normal)
        sizeToFit()
    }
    // 通过XIB/SB创建时调用
    required init?(coder aDecoder: NSCoder) {
        // 系统对initWithCoder的默认实现是报一个致命错误
        // 为了降低开发难度，要么用纯代码初始化，要么用xib初始化
        // 如果要兼容两者就实现该方法执行相同代码(不推荐)
        fatalError("init(coder:) has not been implemented")
    }
    
    override func setTitle(_ title: String?, for state: UIControlState) {
        // ?? 用于判断前面的参数是否是nil, 如果是nil就返回??后面的数据, 如果不是nil那么??后面的语句不执行
        super.setTitle((title ?? "") + "  ", for: state)
    }
    
    override func layoutSubviews() {
        super.layoutSubviews()
        // 和OC不太一样, Swift语法允许我们直接修改一个对象的结构体属性的成员
        titleLabel?.frame.origin.x = 0
        imageView?.frame.origin.x = titleLabel!.frame.width
        /*
         // offsetInPlace 方法用于设置控件的偏移位
         titleLabel?.frame.offsetInPlace(dx: -imageView!.frame.width * 0.5, dy: 0)
         imageView?.frame.offsetInPlace(dx: titleLabel!.frame.width * 0.5, dy: 0)
         */
        
    }

}
